package com.skl.springloud.controller;
//                            _ooOoo_
//                           o8888888o
//                           88" . "88
//                           (| -_- |)
//                            O\ = /O
//                        ____/`---'\____
//                      .   ' \| |// `.
//                       / \||| : |||// \
//                     / _||||| -:- |||||- \
//                       | | \\\ - /// | |
//                     | \_| ''\---/'' | |
//                      \ .-\__ `-` ___/-. /
//                   ___`. .' /--.--\ `. . __
//                ."" '< `.___\_<|>_/___.' >'"".
//               | | : `- \`.;`\ _ /`;.`/ - ` : | |
//                 \ \ `-. \_ __\ /__ _/ .-` / /
//         ======`-.____`-.___\_____/___.-`____.-'======
//                            `=---='
//
//         .............................................
//                  佛祖镇楼                  BUG辟易
//          佛曰:
//                  写字楼里写字间，写字间里程序员；
//                  程序人员写程序，又拿程序换酒钱。
//                  酒醒只在网上坐，酒醉还来网下眠；
//                  酒醉酒醒日复日，网上网下年复年。
//                  但愿老死电脑间，不愿鞠躬老板前；
//                  奔驰宝马贵者趣，公交自行程序员。
//                  别人笑我忒疯癫，我笑自己命太贱；
//                  不见满街漂亮妹，哪个归得程序员？


import com.netflix.appinfo.InstanceInfo;
import com.netflix.discovery.EurekaClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;

/**
 * @author skl
 * @date 2019-07-12
 */
@RestController
public class ConsumerUserController {

    @Autowired
    private EurekaClient discoveryClient;

    @Autowired
    private RestTemplate restTemplate;

    @Autowired
    private LoadBalancerClient loadBalancerClient;

    @GetMapping("/provider")
    public String providerInfo(){

        InstanceInfo eureka = discoveryClient.getNextServerFromEureka("PROVIDER-USER", false);
        String homePageUrl = eureka.getHomePageUrl();

        return homePageUrl ;
    }

    @GetMapping("/consumerInfos/{id}")
    public String consumerInfos(@PathVariable String id){

//        InstanceInfo eureka = discoveryClient.getNextServerFromEureka("PROVIDER-USER", false);
//        String homePageUrl = eureka.getHomePageUrl();
        String forObject = restTemplate.postForObject("http://PROVIDER-USER/providerInfos/"+id, null,String.class);

        return forObject;

    }

    @GetMapping("/test")
    public String test(){
//        ServiceInstance choose = loadBalancerClient.choose("PROVIDER-USER");
//        System.err.println("line111:"+choose.getServiceId() + choose.getHost() + choose.getPort());

        ServiceInstance choose1 = loadBalancerClient.choose("PVIDER-USER1");
        System.err.println("line222:"+choose1.getServiceId() + choose1.getHost() + choose1.getPort());
        return "1";
    }


}
